#include %A_ScriptDir%\CommandLine.ahk

;Gosub, GetWinPos
;Return


Gosub, SYS_GetMonitorInfo
Return

file := ""

Gosub, SYS_ParseCommandLine
Return


Gosub, SYS_GetCmdLine

;MsgBox paramcount=%ParamCount%
;MsgBox paramStr=%ParamStr1%
MsgBox file=%file%

file := GetCommandLine()
MsgBox file=%file%  

GetWinPos:
  WinGetPos, X, Y, W, H, A
  MsgBox, (%X%,%Y%) - (%W%,%H%)
  Return
  

SYS_GetMonitorInfo:
  SysGet, MonitorCount, 80
  SysGet, MonitorPrimary, MonitorPrimary
  MsgBox, Monitor Count:`t%MonitorCount%`nPrimary Monitor:`t%MonitorPrimary%
  Loop, %MonitorCount%
  {
      SysGet, MonitorName, MonitorName, %A_Index%
      SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index%
      MsgBox, Monitor:`t#%A_Index%`nName:`t%MonitorName%`nLeft:`t%MonitorLeft% (%MonitorWorkAreaLeft% work)`nTop:`t%MonitorTop% (%MonitorWorkAreaTop% work)`nRight:`t%MonitorRight% (%MonitorWorkAreaRight% work)`nBottom:`t%MonitorBottom% (%MonitorWorkAreaBottom% work)
  }
  Return

  SysGet, Mon1, Monitor, 1
  SysGet, Mon2, Monitor, 2
  MsgBox %SM_CMONITORS%`n(%Mon1Left%,%Mon1Top%) - (%Mon1Right%,%Mon1Bottom%)`n(%Mon2Left%,%Mon2Top%) - (%Mon2Right%,%Mon2Bottom%)

  Return



SYS_ParseCommandLine:
  MsgBox 0 = %0%
  ParamCount = %0%
  Loop %0%
  {
    eindex = A_Index                    ;is de string 'A_Index'
    epar   = %A_Index%                  ;is de waarde van A_Index is 1, 2, etc voor elke iteratie 1 groter.
    eppar  = %epar%                     ;is de waarde van epar, dus gelijk aan hierboven
    eParamStr%A_Index% = %A_Index%      ;%A_Index% is 1,2,3,... dus eParamStr1, eParamStr2, ... wordt gelijk aan de waarde van A_Index: 1, 2, 3...
    eparamstr = eParamStr%A_Index%      ;is de string eParamStr1, eParamStr2 etc
    evparamstr := eParamStr%A_Index%    ;is de waarde van de variabele eParamStr1, eParamStr2 etc dus is gelijk aan 1, 2, 3,... zoals twee regels hierboven 
    
    vindex := A_Index                   ;wordt de waarde van de variabele A_Index: 1, 2, 3,...
    vpar   := %A_Index%                 ;wordt de waarde van de loop variabele: [A_Index]. We itereren hier over %0%, wat gelijk is aan de command line parameters. Dus test.ahk a b c geeft de waardes a, b, c
    vppar  := %vpar%                    ;wordt de waarde van de variabele a, b,c, dat is niet gedefinieerd.
    vParamStr%A_Index% := %A_Index%     ;vParamStr1, vParamStr2... wordt gelijk aan de waarde van de loop variabele: a, b, c
    vparamstr := vParamStr%A_Index%     ;wordt gelijk aan de waarde van de variabele vParamStr1, vParamStr2,...: a, b, c
    veparamstr = vParamStr%A_Index%     ;wordt de string vParamStr1, vParamStr2,...
    
    index := A_Index
    value := %A_Index%
    
    MsgBox [%index%]=%value%
    ;MsgBox  eindex=%eindex%`nepar=%epar%`neppar=%eppar%`neparamstr=%eparamstr%`nevparamstr=%evparamstr%`n`nvindex=%vindex%`nvpar=%vpar%`nvppar=%vppar%`nvparamstr=%vparamstr%`nveparamstr=%veparamstr%`n

    if (%A_Index% = "/x")
    {
      par1 := %A_Index%
      ;MsgBox, ,A_Index, %par1%
    }
    ;MsgBox 1= %1%
    
  }
Return

SYS_GetCmdLine:
  MsgBox 0 = %1%
  file = %1%
Return



GetCmdLine(a, b, c)
{
  global file
  file := %0%
}